package com.qs.education.service;


import org.springframework.web.multipart.MultipartFile;

import com.qs.education.bean.api.PageBean;
import com.qs.education.bean.api.ResponseBean;
import com.qs.education.bean.api.ResponseListBean;
import com.qs.education.bean.beans.EducationTeacherResponse;
import com.qs.education.bean.entity.EducationTeacher;

/**
 * @class ITeacherAPIService
 * @author Leon
 * @description
 * @date Nov 2, 2018
 */
public interface ITeacherAPIService {
	
	/**
	 * @Description 根据手机号查询 教师 用户是否存在
	 * @author Leon
	 * @date   Nov 5, 2018
	 * @param  
	 * @return EducationTeacherResponse
	 */
	public EducationTeacherResponse findTeacherByMobile(String phone);
	
	
	/**
	 * @Description 根据手机号或者姓名查询教师信息
	 * @author Leon
	 * @date   Nov 12, 2018
	 * @param  
	 * @return ResponseListBean<EducationTeacher>
	 */
	public ResponseListBean<EducationTeacher> findTeacherByMobileOrName(String content);
	
	/**
	 * @Description 根据手机号和 密码进行登陆操作
	 * @author Leon
	 * @date   Nov 6, 2018
	 * @param  
	 * @return EducationTeacherResponse
	 */
	public EducationTeacherResponse login(String mobile,String password);
	
	/**
	 * @Description 根据手机号 退出登录
	 * @author Leon
	 * @date   Nov 6, 2018
	 * @param  
	 * @return EducationTeacherResponse
	 */
	public EducationTeacherResponse quit(String mobile);
	
	/**
	 * @Description 忘记密码
	 * @author Leon
	 * @date   Nov 6, 2018
	 * @param  
	 * @return EducationTeacherResponse
	 */
	public EducationTeacherResponse forgetPassword(String mobile,String password);

	/**
	 * @Description 注册成功保存 用户手机号和密码
	 * @author Leon
	 * @date   Nov 7, 2018
	 * @param  
	 * @return EducationTeacherResponse
	 */
	public EducationTeacherResponse saveTeacherMobileAndPassword(String mobile,String password);
	
	/**
	 * @Description 完善教师信息
	 * @author Leon
	 * @date   Nov 8, 2018
	 * @param  
	 * @return EducationTeacherResponse
	 */
	public EducationTeacherResponse perfectTeacherInfo(EducationTeacher teacher,Integer schoolId,Integer subjectId);
	
	/**
	 * @Description 修改教师信息
	 * @author Leon
	 * @date   Nov 16, 2018
	 * @param  
	 * @return EducationTeacherResponse
	 */
	public EducationTeacherResponse modifyTeacherInfo(EducationTeacher bean,MultipartFile file,String url);
	
	/**
	 * @Description 退出群组
	 * @author Leon
	 * @date   Nov 19, 2018
	 * @param  
	 * @return ResponseBean
	 */
	public ResponseBean quitGroup(String gropId,String teacherId);
	
	/**
	 * @Description 修改密码
	 * @author Leon
	 * @date   Nov 27, 2018
	 * @param  
	 * @return ResponseBean
	 */
	public ResponseBean changePassword(String id,String oldPassword,String newPassword);
	// ========================================================================
	/**
	 * 
	 * @Description 获取所有老师
	 * @author Jason
	 * @param pageSize 
	 * @param currentPage 
	 * @param educationTeacher 
	 * @date Nov 6, 2018
	 * @return
	 */
	public PageBean getEducationTeacher(EducationTeacher educationTeacher, Integer currentPage, Integer pageSize);
	
	/**
	 * 
	 * @Description 根据ID删除老师
	 * @author Jason
	 * @date Nov 6, 2018
	 * @param teacherId
	 * @return
	 */
	public Boolean deleteTeacherById(Integer teacherId);

	/**
	 * 
	 * @Description 根据ID查询老师
	 * @author Jason
	 * @date Nov 7, 2018
	 * @param teacherId
	 * @return
	 */
	public EducationTeacherResponse findTeacherById(Integer teacherId);

	/**
	 * 
	 * @Description 更改老师信息
	 * @author Jason
	 * @date Nov 7, 2018
	 * @param educationTeacher
	 * @return
	 */
	public Boolean updateTeacher(EducationTeacher educationTeacher);

	/**
	 * @Description 添加老师信息
	 * @author Jason
	 * @date Nov 9, 2018
	 * @param teacher
	 * @return
	 */
	public Boolean addTeacher(EducationTeacher teacher);

	/**
	 * @Description 根据条件搜索老师
	 * @author Jason
	 * @date Nov 12, 2018
	 * @param teacher
	 * @return
	 */
	public ResponseListBean<EducationTeacher> findTeacherByCondition(EducationTeacher teacher);
}
